3b2c2c227fd2d328bd089d025ebe9c6758a0afec,plugins/InspectionGadgets/src/com/siyeh/ig/controlflow/LoopConditionNotUpdatedInsideLoopInspection.java,LoopConditionNotUpdatedInsideLoopVisitor,checkCondition,#PsiExpression#PsiStatement#,74
Before Change
final PsiInstanceOfExpression instanceOfExpression =
(PsiInstanceOfExpression)condition;
final PsiExpression operand = instanceOfExpression.getOperand();
checkCondition(operand, context);
} else if (condition instanceof PsiBinaryExpression) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)condition;
PsiExpression lhs = binaryExpression.getLOperand();
PsiExpression rhs = binaryExpression.getROperand();
if (rhs == null) {
return;
}
lhs = ParenthesesUtils.stripParentheses(lhs);
rhs = ParenthesesUtils.stripParentheses(rhs);
if (ComparisonUtils.isComparison(binaryExpression)) {
if (lhs instanceof PsiLiteralExpression) {
checkCondition(rhs, context);
} else if (rhs instanceof PsiLiteralExpression) {
checkCondition(lhs, context);
}
}
} else if (condition instanceof PsiReferenceExpression) {
After Change
final PsiInstanceOfExpression instanceOfExpression =
(PsiInstanceOfExpression)condition;
final PsiExpression operand = instanceOfExpression.getOperand();
if (checkCondition(operand, context)) {
registerError(operand);
}
return false;
} else if (condition instanceof PsiBinaryExpression) {
final PsiBinaryExpression binaryExpression =
(PsiBinaryExpression)condition;
PsiExpression lhs = binaryExpression.getLOperand();
PsiExpression rhs = binaryExpression.getROperand();
if (rhs == null) {
return false;
}
lhs = ParenthesesUtils.stripParentheses(lhs);
rhs = ParenthesesUtils.stripParentheses(rhs);
if (ComparisonUtils.isComparison(binaryExpression)) {
if (PsiUtil.isConstantExpression(lhs)) {
if (checkCondition(rhs, context)) {
registerError(rhs);
}
return false;
} else if (PsiUtil.isConstantExpression(rhs)) {
if (checkCondition(lhs, context)) {
registerError(lhs);
}
return false;
} else if (lhs instanceof PsiReferenceExpression &&
rhs instanceof PsiReferenceExpression){
if (checkCondition(lhs, context) &&
checkCondition(rhs, context)) {
registerError(lhs);
registerError(rhs);
}